1. Field
The present disclosure relates generally to memory devices, and more specifically, to methods and systems for controlling refresh in dynamic volatile memories.
2. Background
Dynamic volatile memory is a storage medium that is commonly structured as a number of arrays (or banks). Each bank is further arranged as a matrix of “memory cells” in rows and columns, with each column being further divided by the input/output (I/O) width of the memory. Locations within the memory are uniquely specified by bank, row and column. A memory controller may be used to retrieve data from the memory by indicating the data's bank, row and column location.
In the case of dynamic volatile memories (volatile memories), each cell must be refreshed, or re-energized, periodically in order to maintain data integrity. The cells have to be refreshed because they discharge over time. Refresh is the process of recharging, or re-energizing, the cells in memory. Cells are generally refreshed one row at a time. A number of methods currently exist that are designed to refresh volatile memories. Some, if not all, of these methods incur high cost in performance and/or power. For example, there are a number common methods or techniques that are generally used to control the refresh of volatile memories in modem digital systems. One method, typically known as self-refresh, relies on the memory to control timing of the refresh operations to be performed on the desired rows and banks; the other method, typically known as auto-refresh, relies on a memory controller to control timing of the refresh operations to be performed on the desired rows and banks. With these two methods, however, the memory controller and the memory do not have any means to convey to each other the information relating to the row and bank to be refreshed.
Under the self-refresh method, the memory utilizes its own internal refresh clock and the refresh address stored in an internal refresh address register to control refresh operations. During periods when data is not being written to or retrieved from the memory (idle states), the memory controller may place the memory in the self-refresh mode. In the self-refresh mode, the memory uses its own internal refresh mechanism to refresh the row(s) of memory and control the internal refresh address register. The self-refresh mode is good for saving power during idle states since the self-refresh mode uses a relatively small amount of power. Due to the small amount of power needed, this method is commonly used for low power applications. However, this method is inefficient during active cycles, because access to the memory is shut down completely (i.e., all rows closed) for a refresh cycle to be performed.
The auto-refresh method is typically employed during active use of the memory. In auto-refresh mode, the memory controller provides an auto-refresh command that is to be used by the memory to perform the refresh operations. The memory uses the refresh address in its internal refresh address register to determine which row/bank to perform the refresh cycle and cycle through the relevant rows based on the auto-refresh command provided by the memory controller. Similarly, when the memory enters the auto-refresh state, all banks have to be closed to access by the memory controller because the memory controller has no knowledge as to which bank is going to be refreshed by the memory.
Hence, it would be desirable to provide more efficient methods and systems for refreshing volatile memories, which are capable of achieving higher performance while maintaining a low power budget.